if (true) {
  var x = 2
  console.log(x) // 2
}
console.log(x) // 2

var i = 0
for (let i = 0; i < 6; i++) {
  setTimeout(() => console.log(i), 100) // 每一个块级作用域中都有一个console.log(i)，并且每个i都是不一样的，不会覆盖。   0 1 2 3 4 5
  // console.log(i) // 0 1 2 3 4 5
}
for (var i = 0; i < 6; i++) {
  setTimeout(() => console.log(i), 100) // 6 6 6 6 ......
  // console.log(i) // 0 1 2 3 4 5
}
console.log(i)



{
  // var a = 3  // 重新声明会报错 
 let a = 1
 var b = 1
//  var a = 2   重新声明会报错
}
console.log('___________b', b) // 1  块级作用域限制不了var